package com.rcadmin.busi.user.service;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.google.common.base.Function;
import com.google.common.collect.Lists;
import com.rcadmin.busi.admin.ddl.SysParam;
import com.rcadmin.busi.user.dao.UserRelTemplatePackageDao;
import com.rcadmin.busi.user.ddl.UserRelTemplatePackage;
import com.rcadmin.busi.web.dao.TemplatePackageDao;
import com.rcadmin.busi.web.ddl.WebTemplatePackage;

/**
 * 用户关联主题
 * 
 * @author tanson lam
 * @create 2016年10月15日
 */
@Component
public class UserRelTemplatePackageService {
	@Resource
	private UserRelTemplatePackageDao userRelTemplatePackageDao;
	@Resource
	private TemplatePackageDao templatePackageDao;

	/**
	 * 根据用户ID查找关联的主题信息
	 * 
	 * @param userId
	 * @return
	 */
	public List<WebTemplatePackage> findTemplatePackageByUserId(Integer userId) {
		if (userId == null)
			throw new IllegalArgumentException("userId can not be null.");
		List<UserRelTemplatePackage> relList = userRelTemplatePackageDao
				.findByUserId(userId);

		final List<Integer> idsList = Lists.transform(relList,
				new Function<UserRelTemplatePackage, Integer>() {
					@Override
					public Integer apply(UserRelTemplatePackage model) {
						if (model == null)
							return null;
						return model.getTemplatePackageId();
					}
				});
		return templatePackageDao.findByIds(idsList);
	}

	/**
	 * 获取主题信息，并封装到{@link #SysParam}对象列表返回。
	 */
	public List<SysParam> findTemplatePackageParamByUserId(Integer userId) {
		List<WebTemplatePackage> grouplist = findTemplatePackageByUserId(userId);
		List<SysParam> sysParamList = Lists.newArrayList();
		for (WebTemplatePackage g : grouplist) {
			SysParam p = new SysParam();
			p.setParamValue(g.getId().toString());
			p.setParamName(g.getName());
			sysParamList.add(p);
		}
		return sysParamList;
	}

}
